home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / WINER.ZIP / CHAP2-2.BAS < prev    next >
BASIC Source File  |  1992-05-13  |  791b  |  30 lines

  1. '*********** CHAP2-2.BAS - shows how to find a far string from its descriptor
  2.  
  3. 'Copyright (c) 1992 Ethan Winer
  4.  
  5. DEF FNPeekWord& (A&)
  6.   FNPeekWord& = PEEK(A&) + 256& * PEEK(A& + 1)
  7. END DEF
  8.  
  9. Work$ = "This is a test"
  10.  
  11. DescAddr& = VARPTR(Work$)
  12. AddressPtr& = FNPeekWord&(DescAddr&)
  13. SegmentPtr& = FNPeekWord&(DescAddr& + 2)
  14. Segment& = FNPeekWord&(SegmentPtr&)
  15.  
  16. DEF SEG = Segment&
  17. DataAddr& = FNPeekWord&(AddressPtr&)
  18. Length% = FNPeekWord&(DataAddr&)
  19. StrAddr& = DataAddr& + 2
  20.  
  21. PRINT "The descriptor address is:"; DescAddr&
  22. PRINT "      The data segment is:"; Segment&
  23. PRINT "            The length is:"; Length%
  24. PRINT "The string data starts at:"; StrAddr&
  25. PRINT "   And the string data is: ";
  26.  
  27. FOR X& = StrAddr& TO StrAddr& + Length% - 1
  28.   PRINT CHR$(PEEK(X&));
  29. NEXT
  30.